﻿using Library.Persistence.Cloud;
using NHibernate;

namespace Library.Cloud.Business
{
    public class CloudBusiness
    {
        private static CloudDao CloudDao()
        {
            return CloudDaoFactory.CloudDao();
        }

        public string GetKullaniciAyar(string kullaniciId, string ayarKodu)
        {
            var dtoAyar = CloudDao().CloudFirmaKullaniciAyar().FindByFirmaKullaniciIdAndAyarKodu(kullaniciId, ayarKodu, LockMode.Read);
            var ayar = "";
            if (dtoAyar != null)
                ayar = dtoAyar.AyarDegeri;
            else
            {
                var p = CloudDao().Cache().CloudParametre().FindByTabloAdiAndKodu(CloudConst.KullaniciAyarlar.TabloAdi, CloudConst.KullaniciAyarlar.Wallpaper);
                if (p != null)
                    ayar = p.Aciklama;
            }
            return ayar;
        }

        public void SetKullaniciAyar(string kullaniciId, string ayarKodu, string ayarDegeri)
        {
            var dtoAyar = CloudDao().CloudFirmaKullaniciAyar().FindByFirmaKullaniciIdAndAyarKodu(kullaniciId, ayarKodu, LockMode.None);
            var insert = false;
            if (dtoAyar == null)
            {
                insert = true;
                dtoAyar = new CloudFirmaKullaniciAyar();
            }

            dtoAyar.AyarDegeri = ayarDegeri;
            dtoAyar.AyarKodu = ayarKodu;
            dtoAyar.FirmaKullaniciId = Cast.ToInt(kullaniciId);
            if (insert)
                CloudDao().CloudFirmaKullaniciAyar().Insert(dtoAyar);
            else
                CloudDao().CloudFirmaKullaniciAyar().Update(dtoAyar);
        }
    }
}
